零基础却想玩转 3D Shader 编程? 或许你可以试试这个
The following article is from 我是麒麟子 Author 麒麟子TM
Cocos Creator 3D 材质和 Effect 使用介绍
材质的使用和 Effect 的使用,面板参数、内置Shader功能介绍
最简单的 Shader
Effect内部各部分在渲染流程中起的作用
添加 Uniform 变量
如何添加 Unifrom 变量,如何显示在 Inspector 面板,如果用代码操作添加的变量
纹理采样
如何进行纹理采样,UV 相关参数的含义
混合因子
透明混合因子的意义和效果
多层纹理混合采样
多层纹理混合 Shader 的编写,以及可以做出的效果
纹理动画
如何进行纹理切换
UV 流动动画
如何进行纹理流动,以及可以做出的效果
反射
如何采样天空盒材质,实现反射效果
渲染到纹理
如何将场景渲染到纹理,并显示到屏幕上
材质(material)
效果代码(effect)
参数(uniform、sampler等)
USE LIGHTMAP:勾选上这个选项后,表示你的模型接受 LIGHTMAP 处理,这个是配合场景的光照图烘焙功能的
USE VERTEX COLOR:是否使用顶点颜色
USE NORMAL MAP:是否使用法线图
HAS SECOND UV: 是否拥有第二套 UV
USE ALBEDO MAP:是否使用颜色贴图
PBR UV:选择 PBR 使用第一套还是第二套 UV,默认是第一套
USE PBR MAP:是否需要使用 PBR 贴图,如果使用了 PBR 贴图,那贴图的通道将和 occlusion,roughness,metallic 值相乘作为最终的值
USE METALLIC ROUGHNESS MAP:是否使用金属度和粗燥度贴图
USE OCCLUSION MAP: 是否使用 occlusion 贴图
USE EMISSIVE MAP: 是否使用自发光贴图
USE ALPHA TEST: 是否开启 ALPHA TEST
Tilling Offset:纹理的缩放和偏移,xy 为缩放,zw 为偏移
Albedo: 颜色,会和 albedoMap 相乘
AlbedoScale: 不同通道的缩放值 这个我也没有用过
Occlusion、Roughness、Metallic、Emissive、EmissiveScale:这几个的作用对应上面的那堆 Map,会和那堆 MAP 的通道相乘作为最终结果。如果没有指定那堆 Map 贴图,则直接使用这个值。
我们用得最多的就是 METALLIC 和 ROUGHNESS,调节这两个的值,就可以很明显改变一个物体的反射强度和高光强度。
01、前言
02、初识 Cocos Shader
03、Hello World 与可编程管线浅析